package happy.study.clique.module.study.design.factory.abstraction;

import happy.study.clique.module.study.design.factory.abstraction.code.FactoryInterface;
import happy.study.clique.module.study.design.factory.abstraction.code.impl.FuShikangFactory;
import happy.study.clique.module.study.design.factory.abstraction.code.impl.OtherFactory;

/**
 * 抽象工厂
 * 优点：
 * 解决一个工厂只能生产一种产品的问题
 * 新增一个产品族时，不需要修改原代码，满足开闭原则。
 * 缺点：
 * 当产品族中需要增加一个新的产品时，所有的工厂类都需要进行修改.
 *
 * @author fsq
 * @date 2021/11/12 16:32
 **/
public class RunMain {

    public static void main(String[] args) {

        FactoryInterface fuShiKang = new FuShikangFactory();

        fuShiKang.createPhone().printBrand();
        fuShiKang.createNoteBook().printBrand();

        FactoryInterface other = new OtherFactory();

        other.createPhone().printBrand();
        other.createNoteBook().printBrand();

    }
}
